🧩 III. 알고리즘과 프로그래밍 > 01 문제 추상화

문제 추상화

복잡한 문제를 만나면 어디서부터 손대야 할지 막막하죠?
컴퓨터처럼 생각하는 첫걸음 — 문제를 잘게 쪼개고, 핵심만 뽑아내고, 반복되는 규칙을 찾는 방법을 배워봅시다!

분해
패턴 인식
추상화

학습 목표

[9정03-01] 실생활의 문제를 분석하여 핵심 요소를 추출하고 추상화한다

  • 문제를 해결 가능한 형태로 바꾸는 추상화의 의미와 필요성을 설명할 수 있다.
  • 문제의 초기·현재·목표 상태를 구분하여 정의할 수 있다.
  • 문제에서 핵심 요소를 추출하고, 큰 문제를 작은 문제로 분해할 수 있다.
  • 여러 문제에서 반복되는 규칙(패턴)을 찾아낼 수 있다.

생각 열기 🤔

"코끼리를 냉장고에 넣는 방법"이라는 오래된 농담이 있어요. 정답은 이렇대요.

  1. 냉장고 문을 연다
  2. 코끼리를 넣는다
  3. 냉장고 문을 닫는다

웃기지만 여기엔 중요한 비밀이 숨어 있어요. 아무리 황당한 문제도 "문을 연다 → 넣는다 → 닫는다"처럼 작은 단계로 쪼개면 누구나 따라 할 수 있게 된다는 거예요.

💡 컴퓨터에게 일을 시키려면 바로 이렇게 생각해야 해요. 이번 시간엔 그 사고법 — 컴퓨팅 사고력의 기초를 배웁니다.

컴퓨팅 사고력의 네 기둥

Computational Thinking

컴퓨터 과학자들이 어려운 문제를 푸는 방법을 정리한 것이 컴퓨팅 사고력이에요. 크게 네 가지 도구로 이루어져 있어요. 이번 단원 전체가 이 네 기둥 위에 세워집니다!

✂️

① 분해

Decomposition

큰 문제를 다루기 쉬운 작은 문제들로 쪼개기

🔁

② 패턴 인식

Pattern Recognition

반복되는 규칙·공통점 찾기

🔑

③ 추상화

Abstraction

핵심만 남기고 불필요한 것은 덜어내기

📝

④ 알고리즘

Algorithm

해결 순서를 단계별로 설계하기 (다음 시간!)

🧭 오늘은 분해 · 패턴 인식 · 추상화 세 가지를 직접 체험해 봅니다. ④ 알고리즘은 다음 시간에 이어져요!

1. 추상화(Abstraction)란?

핵심만 남기고 단순하게

📚 정의

추상화란 복잡한 대상에서 지금 필요한 핵심만 뽑아내고, 덜 중요한 것은 과감히 생략하는 사고 방식이에요. "모든 걸 다 표현하기"가 아니라 "목적에 맞게 단순하게 만들기"가 핵심입니다.

🚇 대표 사례: 지하철 노선도

역 구내에 걸린 지하철 노선도 — 노선을 단순한 선과 점으로 표현
실제 역에 걸린 지하철 노선도예요. 거리·방향·도로는 모두 지우고 노선과 환승역만 단순한 선·점으로 남겼어요.© Elliott Brown · CC BY-SA 2.0 · Wikimedia Commons

🗺️ 실제 지도

  • • 정확한 거리·방향·곡선까지 표현
  • • 도로·건물·강·산이 모두 빼곡
  • • 환승역 찾기엔 너무 복잡해요 😵

📊 지하철 노선도 (추상화!)

  • • 노선과 역을 단순한 선·점으로만
  • • 실제 거리·방향은 과감히 무시
  • • "어디서 갈아탈까?"가 한눈에 😊

💡 지하철을 탈 때 우리에게 필요한 건 "역 순서와 환승 정보"뿐! 그래서 나머지는 모두 지운 거예요.

🎮 인터랙티브 · 추상화 연습

친구에게 우리 집까지 오는 길을 설명하려고 해요. 길 안내에 꼭 필요한 정보남기기, 없어도 되는 정보지우기를 골라 보세요!

2. 문제 분석하기 — 세 가지 상태

초기 · 현재 · 목표 상태

문제를 풀기 전에 "지금 어디에 있고, 어디로 가야 하는지"를 먼저 알아야 해요. 모든 문제는 세 가지 상태로 정리할 수 있어요. 문제 해결이란 결국 현재 상태를 조금씩 바꿔 목표 상태로 옮기는 일이랍니다.

🏁

① 초기 상태

처음 주어진 상황

문제가 시작될 때의 조건과 가진 것. 출발점이에요.

🔄

② 현재 상태

풀어가는 중간

해결 과정 중 계속 바뀌는 상태. 이걸 어떻게 바꿀지가 핵심!

🎯

③ 목표 상태

도달할 결과

문제가 다 풀린 모습. 도착점이에요.

🤖 인터랙티브 · 로봇을 목표 칸으로!

로봇(🤖)을 초기 상태(왼쪽 위)에서 목표 상태(별 ⭐)까지 옮겨 보세요. 버튼을 누를 때마다 현재 상태가 바뀌어요.

현재 위치: (1행, 1열) · 이동 횟수: 0
로봇을 ⭐까지 옮겨 보세요!
💡 한 번 움직일 때마다 현재 상태가 달라지죠? 문제 해결은 이렇게 현재 상태를 목표 상태로 한 단계씩 바꿔 가는 과정이에요.

3. 핵심 요소 뽑아내기

필요한 정보 vs 없어도 되는 정보

문제 속에는 꼭 필요한 정보없어도 되는 정보가 뒤섞여 있어요. 핵심만 골라내면 문제가 갑자기 쉬워 보입니다. 이것도 추상화의 한 종류예요!

🖍️ 인터랙티브 · 핵심 정보에 밑줄 긋기

아래 문제에서 문제를 푸는 데 꼭 필요한 정보를 클릭해 표시하세요. 다 골랐으면 채점!

오늘 오전 8시, 분홍색 가방을 멘 민수는 집에서 출발해 학교까지 1.2km 거리를 가려고 해요. 자전거로 가면 6분, 걸어서 가면 18분이 걸려요. 어제는 비가 왔지만 오늘은 맑아요. 8시 15분까지 학교에 도착하려면 어떻게 가야 할까요?

없어도 되는 정보

  • ❌ 민수라는 이름
  • ❌ 가방 색깔(분홍)
  • ❌ 정확한 거리 1.2km
  • ❌ 어제 날씨

꼭 필요한 정보

  • ✅ 출발 시각(8시) · 도착 제한(8시 15분)
  • ✅ 자전거 6분 / 도보 18분
  • ✅ 남은 시간 = 15분

4. 문제 분해하기

Decomposition — 큰 문제를 작은 문제로

큰 문제는 한입에 삼키기 어려워요. 작은 문제 여러 개로 쪼개면 하나씩 해결할 수 있고, 친구들과 나눠 맡을 수도 있어요. 이것을 문제 분해(Decomposition)라고 합니다.

🌳 인터랙티브 · 분해 트리 만들기

큰 문제 카드를 클릭하면 작은 문제들로 쪼개져요. 작은 문제를 또 클릭하면 더 잘게 나뉘어요!

쪼갠 작은 문제 수: 0
💡 한 번에 풀기 막막했던 "생일 파티 준비"가, 쪼개고 나니 하나씩 처리할 수 있는 작은 일들로 바뀌었죠?

5. 패턴 인식하기

Pattern Recognition — 반복되는 규칙 찾기

여러 문제를 들여다보면 반복되는 규칙이나 공통된 모양이 보일 때가 있어요. 이 규칙을 한 번만 찾아내면, 비슷한 문제를 한꺼번에 해결할 수 있어요. 그게 바로 패턴 인식이에요.

🎨 예시: 반복되는 규칙

아래 그림은 "빨강-파랑-빨강-파랑…"이 반복돼요. 규칙을 알면 100번째 색도 바로 맞힐 수 있죠!

🔴🔵🔴🔵🔴🔵 → 다음은? 🔴

🧩 인터랙티브 · 다음에 올 것은?

규칙을 찾아서 ? 자리에 들어갈 것을 골라 보세요. 문제는 계속 바뀌어요!

맞힌 개수: 0

🔬 종합 활동하기

"우리 반 1박 2일 수련회 계획"을 컴퓨팅 사고력으로!

미션: 아래 네 단계로 "수련회 계획"이라는 큰 문제를 정리해 봅시다.

✂️ ① 분해

큰 문제를 작은 일로 쪼개기 (예: 장소 정하기 / 일정 짜기 / 준비물 / 안전 점검)

🔁 ② 패턴 인식

작년·재작년 수련회와 반복되는 일 찾기 (예: 매년 버스 예약, 조 편성)

🔑 ③ 추상화

계획에 꼭 필요한 핵심만 남기기 (날짜·인원·예산 vs 날씨·옷차림)

🎯 ④ 상태 정의

초기(아무 계획 없음) → 목표(완성된 계획표) 적어 보기

💡 노트에 네 칸을 그려 채워 보세요. 막막했던 "계획 짜기"가 네 단계로 정리되는 걸 느낄 수 있을 거예요!

참고 — 추상화는 컴퓨터 곳곳에 숨어 있어요 (성취기준 밖 심화)

🚗 자동차 운전대

엔진이 어떻게 도는지 몰라도 핸들·페달만으로 운전해요. 복잡한 속을 감춘 '인터페이스'가 추상화예요.

🧩 함수

여러 줄의 코드를 이름 하나로 묶어 부르는 함수. 속을 몰라도 이름만 알면 써요. (6차시에서 배워요!)

📁 폴더·아이콘

0과 1로 된 파일을 '폴더'·'휴지통' 그림으로 단순하게 보여 줘요.

🗺️ 지도·노선도

실제 길을 단순한 선·점으로. 목적에 필요한 것만 남긴 대표적 추상화!

🧠 분해 → 패턴 → 추상화 → 알고리즘

큰 문제를 분해하고, 반복되는 패턴을 찾고, 핵심만 추상화한 뒤, 차례대로 풀어내면 알고리즘이 돼요. 이렇게 큰 문제를 작은 문제로 나눠 푸는 방법을 컴퓨터과학에서는 '분할 정복(Divide & Conquer)'이라고 부른답니다.

핵심 한눈에 정리

분해
큰 문제 → 작은 문제 여러 개
패턴 인식
반복되는 규칙·공통점 찾기
추상화
핵심만 남기고 불필요한 것 생략
세 가지 상태
초기 → 현재 → 목표

스스로 점검하기

5문제로 오늘 배운 내용을 확인해요

1

"추상화"를 가장 잘 설명한 것은?

2

문제의 세 가지 상태가 아닌 것은?

3

큰 문제를 작은 문제 여러 개로 쪼개는 것은?

4

"빨강-노랑-빨강-노랑-…"에서 반복 규칙을 찾는 사고 방식은?

5

지하철 노선도가 추상화의 좋은 예인 까닭은?